﻿using Ortodoctor.modelo;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Services;
using System.Web.UI.WebControls;

namespace Ortodoctor.Funcionario
{
    public partial class Promocao : System.Web.UI.Page
    {
        protected System.Web.UI.HtmlControls.HtmlInputFile File1;
        protected System.Web.UI.HtmlControls.HtmlInputButton Submit1;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["USUARIO"] == null)
                Response.Redirect("Login.aspx");

            modeloPromocao mp = new modeloPromocao();
            DataTable dt = mp.verificaPromocaoExistente();

            promocoes_cadastradas.Items.Clear();
            promocoes_cadastradas.Items.Add(new ListItem("", ""));
            foreach(DataRow dr in dt.Rows)
            {
                promocoes_cadastradas.Items.Add(new ListItem(dr["titulo"].ToString(), dr["titulo"].ToString()));
            }
            
            Session["DEMAIS_PROMOCOES"] = dt;
        }

        protected void UploadButton_Click(object sender, EventArgs e)
        {
            if (FileUpload1.HasFile)
            {
                if (FileUpload1.PostedFile.ContentType.ToString().Equals("image/jpg") ||
                   FileUpload1.PostedFile.ContentType.ToString().Equals("image/jpeg") ||
                   FileUpload1.PostedFile.ContentType.ToString().Equals("image/gif") ||
                   FileUpload1.PostedFile.ContentType.ToString().Equals("image/bmp") ||
                   FileUpload1.PostedFile.ContentType.ToString().Equals("image/png"))
                {
                    DisplayFileContents(FileUpload1.PostedFile);
                }
                else
                {
                    Response.Write("O arquivo enviado deve ser um arquivo de image: bmp/jpg/gif/png");
                    imagem.Attributes.Add("src", "");
                }
            }
        }

        [WebMethod]
        public static string salvarPromocao(string titulo, string texto, int width, int height, string date, string imagem)
        {
            string retorno = "ok";
            try
            {
                modeloPromocao mp = new modeloPromocao();
                DataTable dt = ((DataTable)HttpContext.Current.Session["DEMAIS_PROMOCOES"]);
                dt.DefaultView.RowFilter = "[titulo]='" + titulo + "'";
                dt = dt.DefaultView.ToTable();
                if (dt != null && dt.Rows.Count > 0)
                {
                    Componentes.Promocao p = new Componentes.Promocao();
                    p.Img = imagem;
                    p.Texto = texto;
                    p.Altura = height;
                    p.Largura = width;
                    p.Titulo = titulo;
                    p.Date = date;
                    mp.update(p);
                }
                else
                {
                    Componentes.Promocao p = new Componentes.Promocao();
                    p.Img = imagem;
                    p.Texto = texto;
                    p.Altura = height;
                    p.Largura = width;
                    p.Titulo = titulo;
                    p.Date = date;
                    mp.insert(p);
                }
            }
            catch 
            {
            }
            return retorno;
        }

        void DisplayFileContents(HttpPostedFile file)
        {
            System.Drawing.Image IMAGE = System.Drawing.Image.FromStream(FileUpload1.FileContent);
            
            switch (file.ContentType)
            {
                case "image/jpg":
                    imagem.Attributes.Add("src", "data:" + file.ContentType + ";base64," + Servico.ImageToBase64(IMAGE, System.Drawing.Imaging.ImageFormat.Jpeg));                    
                    break;
                case "image/jpeg":
                    imagem.Attributes.Add("src", "data:" + file.ContentType + ";base64," + Servico.ImageToBase64(IMAGE, System.Drawing.Imaging.ImageFormat.Jpeg));
                    break;
                case "image/bmp":
                    imagem.Attributes.Add("src", "data:" + file.ContentType + ";base64," + Servico.ImageToBase64(IMAGE, System.Drawing.Imaging.ImageFormat.Bmp));
                    break;
                case "image/gif":
                    imagem.Attributes.Add("src", "data:" + file.ContentType + ";base64," + Servico.ImageToBase64(IMAGE, System.Drawing.Imaging.ImageFormat.Gif));
                    break;
                case "image/png":
                    imagem.Attributes.Add("src", "data:" + file.ContentType + ";base64," + Servico.ImageToBase64(IMAGE, System.Drawing.Imaging.ImageFormat.Png));
                    break;
            }
            
            imagem.Attributes.Add("width", IMAGE.Width.ToString());
            imagem.Attributes.Add("height", IMAGE.Height.ToString());
        }

        [WebMethod]
        public static string pegaCampos(string titulo)
        {
            DataTable dt = ((DataTable)HttpContext.Current.Session["DEMAIS_PROMOCOES"]);
            dt.DefaultView.RowFilter = "[titulo]='" + titulo + "'";
            dt = dt.DefaultView.ToTable();
            return dt.Rows[0]["altura_imagem"] + "|" + dt.Rows[0]["largura_imagem"] + "|" + dt.Rows[0]["texto"] + "|" + 
                   dt.Rows[0]["titulo"] + "|" + Convert.ToDateTime(dt.Rows[0]["vencimento"]).ToString("dd-MM-yyyy") + "|" + dt.Rows[0]["imagem"];
        }

        [WebMethod]
        public static void excluiPromocao(string titulo)
        {
            modeloPromocao mp = new modeloPromocao();
            mp.delete(titulo);
        }
    }
}